package com.ityshow.uaa.service.dto;


import javax.validation.constraints.*;
import java.io.Serializable;
import java.util.Objects;

/**
 * A DTO for the ClientDetails entity.
 */
public class ClientDetailsDTO implements Serializable {

    private Long id;

    @NotNull
    private String appId;

    private String resourceIds;

    private String appSecret;

    private String scopt;

    private String scope;

    private String grantTypes;

    private String redirectUrl;

    private String authorities;

    private String accessTokenValidDity;

    private String refreshTokenValidity;

    private String additionalInformation;

    private String autoApproveScopes;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }
    public String getAppId() {
        return appId;
    }

    public void setAppId(String appId) {
        this.appId = appId;
    }
    public String getResourceIds() {
        return resourceIds;
    }

    public void setResourceIds(String resourceIds) {
        this.resourceIds = resourceIds;
    }
    public String getAppSecret() {
        return appSecret;
    }

    public void setAppSecret(String appSecret) {
        this.appSecret = appSecret;
    }
    public String getScopt() {
        return scopt;
    }

    public void setScopt(String scopt) {
        this.scopt = scopt;
    }
    public String getScope() {
        return scope;
    }

    public void setScope(String scope) {
        this.scope = scope;
    }
    public String getGrantTypes() {
        return grantTypes;
    }

    public void setGrantTypes(String grantTypes) {
        this.grantTypes = grantTypes;
    }
    public String getRedirectUrl() {
        return redirectUrl;
    }

    public void setRedirectUrl(String redirectUrl) {
        this.redirectUrl = redirectUrl;
    }
    public String getAuthorities() {
        return authorities;
    }

    public void setAuthorities(String authorities) {
        this.authorities = authorities;
    }
    public String getAccessTokenValidDity() {
        return accessTokenValidDity;
    }

    public void setAccessTokenValidDity(String accessTokenValidDity) {
        this.accessTokenValidDity = accessTokenValidDity;
    }
    public String getRefreshTokenValidity() {
        return refreshTokenValidity;
    }

    public void setRefreshTokenValidity(String refreshTokenValidity) {
        this.refreshTokenValidity = refreshTokenValidity;
    }
    public String getAdditionalInformation() {
        return additionalInformation;
    }

    public void setAdditionalInformation(String additionalInformation) {
        this.additionalInformation = additionalInformation;
    }
    public String getAutoApproveScopes() {
        return autoApproveScopes;
    }

    public void setAutoApproveScopes(String autoApproveScopes) {
        this.autoApproveScopes = autoApproveScopes;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) {
            return true;
        }
        if (o == null || getClass() != o.getClass()) {
            return false;
        }

        ClientDetailsDTO clientDetailsDTO = (ClientDetailsDTO) o;

        if ( ! Objects.equals(id, clientDetailsDTO.id)) { return false; }

        return true;
    }

    @Override
    public int hashCode() {
        return Objects.hashCode(id);
    }

    @Override
    public String toString() {
        return "ClientDetailsDTO{" +
            "id=" + id +
            ", appId='" + appId + "'" +
            ", resourceIds='" + resourceIds + "'" +
            ", appSecret='" + appSecret + "'" +
            ", scopt='" + scopt + "'" +
            ", scope='" + scope + "'" +
            ", grantTypes='" + grantTypes + "'" +
            ", redirectUrl='" + redirectUrl + "'" +
            ", authorities='" + authorities + "'" +
            ", accessTokenValidDity='" + accessTokenValidDity + "'" +
            ", refreshTokenValidity='" + refreshTokenValidity + "'" +
            ", additionalInformation='" + additionalInformation + "'" +
            ", autoApproveScopes='" + autoApproveScopes + "'" +
            '}';
    }
}
